# 数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。
# 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2。如果不存在则输出0。

# 解法一：我的做法，完全用api
def MoreThanHalfNum_Solution(numbers):
    for i in numbers:
        if remove_num(str(i),numbers)>len(numbers)/2:
            return i
    return 0

def remove_num(number,list_number):
    my_str = str(list_number)
    return my_str.count(number)

# 解法2：数量超过数组长度一半的数字排序后必定占据中间位置

def MoreThanHalfNum_Solution(self, numbers):
        # write code here
        numbers.sort()
        lth=len(numbers)
        if lth==1:
            return numbers[0]
        if numbers.count(numbers[lth//2])>lth/2:
            return numbers[lth//2]
        return 0


print(MoreThanHalfNum_Solution([1,2,2,2,2,2,2,2,2,2,2,3,4,5]))